#include "QsUdpGlobal.h"
#include <QCoreApplication>
#include <QDebug>
#include <QHostAddress>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    
    // 方式1：使用默认构造函数，然后初始化
    QsUdp* udp1 = QsUdp::instance();
    QsUdpInfo info1(QHOSTADDRESS_ANY_COMPAT, 8080);
    udp1->init(info1);
    
    // 方式2：使用带参数的构造函数（需要修改单例模式）
    // QsUdpInfo info2(QHostAddress::LocalHost, 9090);
    // QsUdp* udp2 = new QsUdp(info2);
    
    // 获取当前配置
    QsUdpInfo currentInfo = udp1->info();
    qDebug() << "当前端口:" << currentInfo.port;
    qDebug() << "当前地址:" << currentInfo.address.toString();
    
    // 修改UDP信息
    QsUdpInfo newInfo(QHostAddress::LocalHost, 8081);
    udp1->setInfo(newInfo);
    
    currentInfo = udp1->info();
    qDebug() << "修改后端口:" << currentInfo.port;
    qDebug() << "修改后地址:" << currentInfo.address.toString();
    
    // 再次修改
    QsUdpInfo finalInfo(QHostAddress::AnyIPv4, 8082);
    udp1->setInfo(finalInfo);
    
    currentInfo = udp1->info();
    qDebug() << "最终端口:" << currentInfo.port;
    qDebug() << "最终地址:" << currentInfo.address.toString();
    
    // 发送数据
    QByteArray data = "Hello UDP!";
    udp1->send(1, data);
    
    return app.exec();
} 